Hexo 的 Tex 渲染优化
最近想重新把博客开始用起来,于是更新了一下 Hexo 的版本,发现在数学公式的渲染上似乎是有一些问题,顺便记录一下解决方法。可能不会通用,因为我这里使用的主题是 icarus,本身就对数学公式有一定的支持。
解决方法
只需要更换 Hexo 的 markdown 渲染引擎,更换为 hexo-renderer-kramed,听说它在默认渲染引擎 hexo-renderer-marked 的基础上修改了一些 bug。
npm uninstall hexo-renderer-marked –save
npm install hexo-renderer-kramed –save
解决语义冲突问题
由于 LaTeX 与 markdown 语法有语义冲突,在 markdown 中,斜体和加粗可以用 * 或者 _ 表示,在这里我们修改变量,将 _ 用于 LaTeX,而使用 * 表示 markdown 中的斜体和加粗。到博客根目录下,找到 node_modules\kramed\lib\rules\inline.js
,把第 11 行和第 20 行进行如下修改:
# line 11
- escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
+ escape: /^\\([`*\[\]()#$+\-.!_>])/
# line 20
- em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
+ em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/
然后重启 hexo 就行了,记得把主题里的 mathjax 支持设为 true。
# _config.icarus.yml
plugins:
mathjax: true
参考文档
[1] Icarus用户指南 - 其他插件
[2] Hexo折腾系列(六)数学公式渲染优化
[3] Hexo 下 LaTeX 无法显示的解决方案